package com.ywy.bootadmin.service.sys;

import com.ywy.bootadmin.common.rest.BaseResult;
import com.ywy.bootadmin.model.sys.Task;

import java.util.Map;

/**
 * 定时任务Service
 *
 * @author ywy
 * @date 2022/1/7 16:36
 */
public interface TaskService {
    /**
     * 分页查询任务信息
     * @param offset
     * @param limit
     * @param params
     * @return
     */
    BaseResult listByPage(Integer offset, Integer limit, Map<String, Object> params);

    /**
     * 根据id查询任务
     * @param id
     * @return
     */
    Task getById(Integer id);

    /**
     * 保存任务信息
     * @param task
     * @return
     */
    BaseResult save(Task task);

    /**
     * 修改任务信息
     * @param task
     * @return
     */
    BaseResult update(Task task);

    /**
     * 删除任务
     * @param id
     * @return
     */
    BaseResult delete(Integer id);

    /**
     * 批量删除任务
     * @param ids
     */
    BaseResult batchDelete(Integer[] ids);

    /**
     * 立即执行任务
     * @param id
     */
    BaseResult run(Integer id);

    /**
     * 修改任务状态
     * @param id
     * @param jobStatus
     */
    BaseResult changeStatus(Integer id, Integer jobStatus);

    /**
     * 更新cron表达式
     * @param id
     */
    BaseResult updateCron(Integer id);

    /**
     * 初始化定时任务
     */
    boolean initJob();
}
